/**
 * Historico de alteração
 *
 * Data         Autor   Descrição
 * 24/10/2010   Jerry   Criação do cabeçalho.
 *
 */

package railbee.banco.dao;

import java.util.Date;

import railbee.banco.dto.*;
import railbee.banco.exceptions.*;

public interface TrensDao
{
	/** 
	 * Inserts a new row in the trens table.
	 */
	public TrensPk insert(Trens dto) throws TrensDaoException;

	/** 
	 * Updates a single row in the trens table.
	 */
	public void update(TrensPk pk, Trens dto) throws TrensDaoException;

	/** 
	 * Deletes a single row in the trens table.
	 */
	public void delete(TrensPk pk) throws TrensDaoException;

	/** 
	 * Returns the rows from the trens table that matches the specified primary-key value.
	 */
	public Trens findByPrimaryKey(TrensPk pk) throws TrensDaoException;

	/** 
	 * Returns all rows from the trens table that match the criteria 'id_seq_trem = :idSeqTrem'.
	 */
	public Trens findByPrimaryKey(long idSeqTrem) throws TrensDaoException;

	/** 
	 * Returns all rows from the trens table that match the criteria ''.
	 */
	public Trens[] findAll() throws TrensDaoException;

	/** 
	 * Returns all rows from the trens table that match the criteria 'data = :data'.
	 */
	public Trens[] findWhereDataEquals(Date data) throws TrensDaoException;

	/** 
	 * Returns all rows from the trens table that match the criteria 'hora = :hora'.
	 */
	public Trens[] findWhereHoraEquals(Date hora) throws TrensDaoException;

	/** 
	 * Returns all rows from the trens table that match the criteria 'estacao = :estacao'.
	 */
	public Trens[] findWhereEstacaoEquals(String estacao) throws TrensDaoException;

	/** 
	 * Returns all rows from the trens table that match the criteria 'velocidade = :velocidade'.
	 */
	public Trens[] findWhereVelocidadeEquals(float velocidade) throws TrensDaoException;

	/** 
	 * Returns all rows from the trens table that match the criteria 'pressao = :pressao'.
	 */
	public Trens[] findWherePressaoEquals(float pressao) throws TrensDaoException;

	/** 
	 * Returns all rows from the trens table that match the criteria 'tensao = :tensao'.
	 */
	public Trens[] findWhereTensaoEquals(float tensao) throws TrensDaoException;

	/** 
	 * Returns all rows from the trens table that match the criteria 'corrente = :corrente'.
	 */
	public Trens[] findWhereCorrenteEquals(float corrente) throws TrensDaoException;

	/** 
	 * Returns all rows from the trens table that match the criteria 'posicao = :posicao'.
	 */
	public Trens[] findWherePosicaoEquals(float posicao) throws TrensDaoException;

	/** 
	 * Returns all rows from the trens table that match the criteria 'num_passageiros = :numPassageiros'.
	 */
	public Trens[] findWhereNumPassageirosEquals(int numPassageiros) throws TrensDaoException;

	/** 
	 * Returns all rows from the trens table that match the criteria 'id_seq_trem = :idSeqTrem'.
	 */
	public Trens[] findWhereIdSeqTremEquals(long idSeqTrem) throws TrensDaoException;

	/** 
	 * Sets the value of maxRows
	 */
	public void setMaxRows(int maxRows);

	/** 
	 * Gets the value of maxRows
	 */
	public int getMaxRows();

	/** 
	 * Returns all rows from the trens table that match the specified arbitrary SQL statement
	 */
	public Trens[] findByDynamicSelect(String sql, Object[] sqlParams) throws TrensDaoException;

	/** 
	 * Returns all rows from the trens table that match the specified arbitrary SQL statement
	 */
	public Trens[] findByDynamicWhere(String sql, Object[] sqlParams) throws TrensDaoException;

}
